from django.shortcuts import redirect
from django.utils.deprecation import MiddlewareMixin

class AuthMiddleware(MiddlewareMixin):
    """ 中间件 """

    def process_request(self,request):
        # 0.排除那些不需要登陆就能访问的页面'/login/'页面和图片验证码获取页面'/image/code/',不需要判定
        # request.path_info 获取当前用户请求的URL ,
        if request.path_info in ["/login/","/image/code/"]:
            return

        # 1.读取当前访问用户的session信息，如果能读到，说明已经登陆，继续向后走
        info_dict=request.session.get('info')
        if info_dict:
            return
        # 2.没有登陆过,重新回到登陆界面
        return redirect('/login/')

        # 没有返回值，即为None，继续往前走
        # 返回HttpResponse，redict，render

    def process_response(self,request,response):
        return response

